7.4 小结
- 可以使用通道来控制程序的生命周期。
- 带
default
分支的select
语句可以用来尝试向通道发送或者接收数据,而不会阻塞。 - 有缓冲的通道可以用来管理一组可复用的资源。
- 语言运行时会处理好通道的协作和同步。
- 使用无缓冲的通道来创建完成工作的goroutine池。
- 任何时间都可以用无缓冲的通道来让两个goroutine交换数据,在通道操作完成时一定保证对方接收到了数据。
①本书是以Go 1.5版本为基础写作而成的。在Go 1.6及之后的版本中,标准库里自带了资源池的实现( sync.Pool
)。推荐使用。——译者注